#pragma once
#include "uart/ProtocolSender.h"
/*
*此文件由GUI工具生成
*文件功能：用于处理用户的逻辑相应代码
*功能说明：
*========================onButtonClick_XXXX
当页面中的按键按下后系统会调用对应的函数，XXX代表GUI工具里面的[ID值]名称，
如Button1,当返回值为false的时候系统将不再处理这个按键，返回true的时候系统将会继续处理此按键。比如SYS_BACK.
*========================onSlideWindowItemClick_XXXX(int index) 
当页面中存在滑动窗口并且用户点击了滑动窗口的图标后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称，
如slideWindow1;index 代表按下图标的偏移值
*========================onSeekBarChange_XXXX(int progress) 
当页面中存在滑动条并且用户改变了进度后系统会调用此函数,XXX代表GUI工具里面的[ID值]名称，
如SeekBar1;progress 代表当前的进度值
*========================ogetListItemCount_XXXX() 
当页面中存在滑动列表的时候，更新的时候系统会调用此接口获取列表的总数目,XXX代表GUI工具里面的[ID值]名称，
如List1;返回值为当前列表的总条数
*========================oobtainListItemData_XXXX(ZKListView::ZKListItem *pListItem, int index)
 当页面中存在滑动列表的时候，更新的时候系统会调用此接口获取列表当前条目下的内容信息,XXX代表GUI工具里面的[ID值]名称，
如List1;pListItem 是贴图中的单条目对象，index是列表总目的偏移量。具体见函数说明
*========================常用接口===============
*LOGD(...)  打印调试信息的接口
*mTextXXXPtr->setText("****") 在控件TextXXX上显示文字****
*mButton1Ptr->setSelected(true); 将控件mButton1设置为选中模式，图片会切换成选中图片，按钮文字会切换为选中后的颜色
*mSeekBarPtr->setProgress(12) 在控件mSeekBar上将进度调整到12
*mListView1Ptr->refreshListView() 让mListView1 重新刷新，当列表数据变化后调用
*mDashbroadView1Ptr->setTargetAngle(120) 在控件mDashbroadView1上指针显示角度调整到120度
*
* 在Eclipse编辑器中  使用 “alt + /”  快捷键可以打开智能提示
*/
#include "file/cfile.h"
#include "file/cFolder.h"


static cFile* pFile;
static cFolder* pFoler;
std::vector<std::string> files;
std::string  mFileName;
static std::string path;

static std::string fileinfos;
/**
 * 注册定时器
 * 填充数组用于注册定时器
 * 注意：id不能重复
 */
static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
	{0,  100}, //定时器id=0, 时间间隔6秒
	{1,  500},
	{2,  50},
};

/**
 * 当界面构造时触发
 */
static void onUI_init(){
    //Tips :添加 UI初始化的显示代码到这里,如:mText1Ptr->setText("123");
	pFoler = new cFolder();
}

/**
 * 当切换到该界面时触发
 */
static void onUI_intent(const Intent *intentPtr) {
//    if (intentPtr != NULL) {
        //TODO
//    }
	//path = intentPtr->getExtra("path");
		LOGD("read file :%s",path.c_str());
		cFile cfile(path);
		fileinfos = cfile.read();
}

/*
 * 当界面显示时触发
 */
static void onUI_show() {

}
/***
 * 自己添加的代码，需要在activity对应的cpp里面增加调用。
 * onResume是页面显示出来前调用的，比如从其他页面返回的时候也会调用
 */
static void onUI_Resume(){
	files =pFoler->scanList("/mnt/extsd");
}
/*
 * 当界面隐藏时触发
 */
static void onUI_hide() {

}

/*
 * 当界面完全退出时触发
 */
static void onUI_quit() {

}

/**
 * 串口数据回调接口
 */
static void onProtocolDataUpdate(const SProtocolData &data) {

}

/**
 * 邓凯哥_用户函数
 * 指示灯逻辑状态显示
 */
uint8_t Bit0;
void LampSate()
{
	mButton6Ptr->setSelected(Bit0);		//安全门
	mButton7Ptr->setSelected(Bit0);		//全自动
	mButton8Ptr->setSelected(Bit0);		//单动
	mButton9Ptr->setSelected(Bit0);		//启动冲压
	mButton10Ptr->setSelected(Bit0);	//开模完成
}
/**
 * 邓凯哥_用户函数
 * X,Y,Z轴当前位置显示
 */
float Xpos,Ypos,Zpos;
void XYZ_CurrentPosition()
{
	  char buf[64] = {0};
	  Xpos+=0.01;
	  Ypos+=0.02;
	  Zpos+=0.03;
	  snprintf(buf, sizeof(buf), "%.3f", Xpos); //固定显示3位小数，多余的小数位会忽略，不足则补0
	  mXaxisPPtr->setText(buf);

	  snprintf(buf, sizeof(buf), "%.3f", Ypos); //固定显示3位小数，多余的小数位会忽略，不足则补0
	  mYaxisPPtr->setText(buf);

	  snprintf(buf, sizeof(buf), "%.3f", Zpos); //固定显示3位小数，多余的小数位会忽略，不足则补0
	  mZaxisPPtr->setText(buf);
}
/**
 * 定时器触发函数
 * 不建议在此函数中写耗时操作，否则将影响UI刷新
 * 参数： id
 *         当前所触发定时器的id，与注册时的id相同
 * 返回值: true
 *             继续运行当前定时器
 *         false
 *             停止运行当前定时器
 */
static bool onUI_Timer(int id){
	switch (id) {
	case 0:LampSate();break;
	case 1:Bit0=!Bit0;break;
	case 2:XYZ_CurrentPosition();break;
		default:
			break;
	}
    return true;
}

/**
 * 有新的触摸事件时触发
 * 参数：ev
 *         新的触摸事件
 * 返回值：true
 *            表示该触摸事件在此被拦截，系统不再将此触摸事件传递到控件上
 *         false
 *            触摸事件将继续传递到控件上
 */
static bool onmainActivityTouchEvent(const MotionEvent &ev) {
    switch (ev.mActionStatus) {
		case MotionEvent::E_ACTION_DOWN://触摸按下
			//LOGD("时刻 = %ld 坐标  x = %d, y = %d", ev.mEventTime, ev.mX, ev.mY);
			break;
		case MotionEvent::E_ACTION_MOVE://触摸滑动
			break;
		case MotionEvent::E_ACTION_UP:  //触摸抬起
			break;
		default:
			break;
	}
	return false;
}
static bool onButtonClick_Button8(ZKButton *pButton) {
    //LOGD(" ButtonClick Button8 !!!\n");
    return false;
}

static bool onButtonClick_Button6(ZKButton *pButton) {
    //LOGD(" ButtonClick Button6 !!!\n");
    return false;
}

static bool onButtonClick_Button9(ZKButton *pButton) {
    //LOGD(" ButtonClick Button9 !!!\n");
    return false;
}

static bool onButtonClick_Button2(ZKButton *pButton) {
    //LOGD(" ButtonClick Button2 !!!\n");
	mTextview18Ptr->setText("监视");
	mMonitorWindowsPtr->showWnd();
	mFuncWindowsPtr->hideWnd();
	mTeachWindowsPtr->hideWnd();
	mConfigWindowsPtr->hideWnd();
	mFileWindowPtr->hideWnd();
    return false;
}

static bool onButtonClick_Button3(ZKButton *pButton) {
    //LOGD(" ButtonClick Button3 !!!\n");
	mTextview18Ptr->setText("设置");
	mConfigWindowsPtr->showWnd();
	mFuncWindowsPtr->hideWnd();
	mTeachWindowsPtr->hideWnd();
	mMonitorWindowsPtr->hideWnd();
	mFileWindowPtr->hideWnd();
    return false;
}

static bool onButtonClick_Button1(ZKButton *pButton) {
    //LOGD(" ButtonClick Button1 !!!\n");
	mTextview18Ptr->setText("示教");
	mTeachWindowsPtr->showWnd();
	mFuncWindowsPtr->hideWnd();
	mMonitorWindowsPtr->hideWnd();
	mConfigWindowsPtr->hideWnd();
	mFileWindowPtr->hideWnd();
    return false;
}

static bool onButtonClick_Button5(ZKButton *pButton) {
    //LOGD(" ButtonClick Button5 !!!\n");
	mTextview18Ptr->setText("功能");
	mFuncWindowsPtr->showWnd();
	mTeachWindowsPtr->hideWnd();
	mMonitorWindowsPtr->hideWnd();
	mConfigWindowsPtr->hideWnd();
	mFileWindowPtr->hideWnd();
    return false;
}

static bool onButtonClick_Button10(ZKButton *pButton) {
    //LOGD(" ButtonClick Button10 !!!\n");
    return false;
}

static bool onButtonClick_Button7(ZKButton *pButton) {
    //LOGD(" ButtonClick Button7 !!!\n");
    return false;
}

static bool onButtonClick_Button11(ZKButton *pButton) {
    //LOGD(" ButtonClick Button11 !!!\n");
	mFuncWindow2Ptr->showWnd();
	mFuncWindow1Ptr->hideWnd();
	mFuncWindow3Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button12(ZKButton *pButton) {
    //LOGD(" ButtonClick Button12 !!!\n");
	mFuncWindow3Ptr->showWnd();
	mFuncWindow2Ptr->hideWnd();
	mFuncWindow1Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button4(ZKButton *pButton) {
    //LOGD(" ButtonClick Button4 !!!\n");
	mFuncWindow1Ptr->showWnd();
	mFuncWindow2Ptr->hideWnd();
	mFuncWindow3Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button13(ZKButton *pButton) {
    //LOGD(" ButtonClick Button13 !!!\n");
	mTeachWindow3Ptr->showWnd();
	mTeachWindow2Ptr->hideWnd();
	mTeachWindow1Ptr->hideWnd();
	mTeachWindow4Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button14(ZKButton *pButton) {
    //LOGD(" ButtonClick Button14 !!!\n");
	mTeachWindow1Ptr->showWnd();
	mTeachWindow2Ptr->hideWnd();
	mTeachWindow3Ptr->hideWnd();
	mTeachWindow4Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button15(ZKButton *pButton) {
    //LOGD(" ButtonClick Button15 !!!\n");
	mTeachWindow2Ptr->showWnd();
	mTeachWindow1Ptr->hideWnd();
	mTeachWindow3Ptr->hideWnd();
	mTeachWindow4Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button16(ZKButton *pButton) {
    //LOGD(" ButtonClick Button16 !!!\n");
	mTeachWindow4Ptr->showWnd();
	mTeachWindow2Ptr->hideWnd();
	mTeachWindow3Ptr->hideWnd();
	mTeachWindow1Ptr->hideWnd();
    return false;
}

static int getListItemCount_Listview1(const ZKListView *pListView) {
    //LOGD("getListItemCount_Listview1 !\n");
    return 50;
}

static void obtainListItemData_Listview1(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index) {
    //LOGD(" obtainListItemData_ Listview1  !!!\n");
	char buf[128] = {0};
		  snprintf(buf, sizeof(buf),"第%d项", index);
		  pListItem->setText(buf);
}

static void onListItemClick_Listview1(ZKListView *pListView, int index, int id) {
    //LOGD(" onListItemClick_ Listview1  !!!\n");
}

static bool onButtonClick_Button20(ZKButton *pButton) {
    //LOGD(" ButtonClick Button20 !!!\n");
	mMonitorWindow1Ptr->showWnd();
	mMonitorWindow2Ptr->hideWnd();
	mMonitorWindow3Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button18(ZKButton *pButton) {
    //LOGD(" ButtonClick Button18 !!!\n");
	mMonitorWindow2Ptr->showWnd();
	mMonitorWindow1Ptr->hideWnd();
	mMonitorWindow3Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button21(ZKButton *pButton) {
    //LOGD(" ButtonClick Button21 !!!\n");
	mMonitorWindow3Ptr->showWnd();
	mMonitorWindow2Ptr->hideWnd();
	mMonitorWindow1Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button17(ZKButton *pButton) {
    //LOGD(" ButtonClick Button17 !!!\n");
	mConfigWindow2Ptr->showWnd();
	mConfigWindow1Ptr->hideWnd();
	mConfigWindow3Ptr->hideWnd();
	mConfigWindow4Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button19(ZKButton *pButton) {
    //LOGD(" ButtonClick Button19 !!!\n");
	mConfigWindow3Ptr->showWnd();
	mConfigWindow2Ptr->hideWnd();
	mConfigWindow1Ptr->hideWnd();
	mConfigWindow4Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button22(ZKButton *pButton) {
    //LOGD(" ButtonClick Button22 !!!\n");
	mConfigWindow1Ptr->showWnd();
	mConfigWindow2Ptr->hideWnd();
	mConfigWindow3Ptr->hideWnd();
	mConfigWindow4Ptr->hideWnd();
    return false;
}

static bool onButtonClick_Button23(ZKButton *pButton) {
    //LOGD(" ButtonClick Button23 !!!\n");
	mConfigWindow4Ptr->showWnd();
	mConfigWindow2Ptr->hideWnd();
	mConfigWindow3Ptr->hideWnd();
	mConfigWindow1Ptr->hideWnd();
    return false;
}
static bool onButtonClick_Button24(ZKButton *pButton) {
    //LOGD(" ButtonClick Button24 !!!\n");
	mTextview18Ptr->setText("文档");
		mTeachWindowsPtr->hideWnd();
		mFuncWindowsPtr->hideWnd();
		mMonitorWindowsPtr->hideWnd();
		mConfigWindowsPtr->hideWnd();
		mFileWindowPtr->showWnd();
    return false;
}

static int getListItemCount_ListView1(const ZKListView *pListView) {
    //LOGD("getListItemCount_ListView1 !\n");
    //return 5;
	return files.size();
	// return sTotalFileNum;
}

static void obtainListItemData_ListView1(ZKListView *pListView,ZKListView::ZKListItem *pListItem, int index) {
    //LOGD(" obtainListItemData_ ListView1  !!!\n");
	pListItem->setText(files.at(index));
}

static void onListItemClick_ListView1(ZKListView *pListView, int index, int id) {
    //LOGD(" onListItemClick_ ListView1  !!!\n");
}

static void onEditTextChanged_EditText1(const std::string &text) {
    //LOGD(" onEditTextChanged_ EditText1 %s !!!\n", text.c_str());
}

static bool onButtonClick_Button25(ZKButton *pButton) {
    //LOGD(" ButtonClick Button25 !!!\n");
	if(mFileNamePtr->getText().size() <= 0) return true;

	cFile file("/mnt/extsd/"+mFileNamePtr->getText()+".txt");
	//file.write(mFileNamePtr->getText());04 00 05 03 11 F8
	file.write("04 00 05 03 11 F8");
	EASYUICONTEXT->goBack();
    return true;
    //return false;
}

static bool onButtonClick_Button26(ZKButton *pButton) {
    LOGD(" ButtonClick Button26 !!!\n");
    return false;
}

static bool onButtonClick_Button27(ZKButton *pButton) {
    LOGD(" ButtonClick Button27 !!!\n");
    return false;
}

static bool onButtonClick_Button28(ZKButton *pButton) {
    LOGD(" ButtonClick Button28 !!!\n");
    return false;
}
static void onEditTextChanged_FileName(const std::string &text) {
    //LOGD(" onEditTextChanged_ FileName %s !!!\n", text.c_str());
}
static void onEditTextChanged_EdittextInfo(const std::string &text) {
    //LOGD(" onEditTextChanged_ EdittextInfo %s !!!\n", text.c_str());
}

static void onEditTextChanged_EdittextName(const std::string &text) {
    //LOGD(" onEditTextChanged_ EdittextName %s !!!\n", text.c_str());
}
static bool onButtonClick_Button29(ZKButton *pButton) {
    LOGD(" ButtonClick Button29 !!!\n");
    return false;
}

static bool onButtonClick_Button30(ZKButton *pButton) {
    LOGD(" ButtonClick Button30 !!!\n");
    return false;
}

static bool onButtonClick_Button31(ZKButton *pButton) {
    LOGD(" ButtonClick Button31 !!!\n");
    return false;
}

static bool onButtonClick_Button32(ZKButton *pButton) {
    LOGD(" ButtonClick Button32 !!!\n");
    return false;
}

static bool onButtonClick_Button33(ZKButton *pButton) {
    LOGD(" ButtonClick Button33 !!!\n");
    return false;
}

static bool onButtonClick_Button34(ZKButton *pButton) {
    LOGD(" ButtonClick Button34 !!!\n");
    return false;
}

static bool onButtonClick_Button35(ZKButton *pButton) {
    LOGD(" ButtonClick Button35 !!!\n");
    return false;
}

static bool onButtonClick_Button36(ZKButton *pButton) {
    LOGD(" ButtonClick Button36 !!!\n");
    return false;
}

static bool onButtonClick_Button37(ZKButton *pButton) {
    LOGD(" ButtonClick Button37 !!!\n");
    return false;
}

static bool onButtonClick_Button38(ZKButton *pButton) {
    LOGD(" ButtonClick Button38 !!!\n");
    return false;
}

static bool onButtonClick_Button39(ZKButton *pButton) {
    LOGD(" ButtonClick Button39 !!!\n");
    return false;
}

static bool onButtonClick_Button40(ZKButton *pButton) {
    LOGD(" ButtonClick Button40 !!!\n");
    return false;
}

static bool onButtonClick_Button41(ZKButton *pButton) {
    LOGD(" ButtonClick Button41 !!!\n");
    return false;
}

static bool onButtonClick_Button42(ZKButton *pButton) {
    LOGD(" ButtonClick Button42 !!!\n");
    return false;
}

static bool onButtonClick_Button43(ZKButton *pButton) {
    LOGD(" ButtonClick Button43 !!!\n");
    return false;
}

static bool onButtonClick_Button44(ZKButton *pButton) {
    LOGD(" ButtonClick Button44 !!!\n");
    return false;
}

static bool onButtonClick_Button45(ZKButton *pButton) {
    LOGD(" ButtonClick Button45 !!!\n");
    return false;
}

static bool onButtonClick_Button46(ZKButton *pButton) {
    LOGD(" ButtonClick Button46 !!!\n");
    return false;
}

static bool onButtonClick_Button47(ZKButton *pButton) {
    LOGD(" ButtonClick Button47 !!!\n");
    return false;
}

static bool onButtonClick_Button48(ZKButton *pButton) {
    LOGD(" ButtonClick Button48 !!!\n");
    return false;
}

static bool onButtonClick_Button49(ZKButton *pButton) {
    LOGD(" ButtonClick Button49 !!!\n");
    return false;
}

static bool onButtonClick_Button50(ZKButton *pButton) {
    LOGD(" ButtonClick Button50 !!!\n");
    return false;
}

static bool onButtonClick_Button51(ZKButton *pButton) {
    LOGD(" ButtonClick Button51 !!!\n");
    return false;
}

static bool onButtonClick_Button52(ZKButton *pButton) {
    LOGD(" ButtonClick Button52 !!!\n");
    return false;
}

static bool onButtonClick_Button53(ZKButton *pButton) {
    LOGD(" ButtonClick Button53 !!!\n");
    return false;
}

static bool onButtonClick_Button54(ZKButton *pButton) {
    LOGD(" ButtonClick Button54 !!!\n");
    return false;
}

static bool onButtonClick_Button55(ZKButton *pButton) {
    LOGD(" ButtonClick Button55 !!!\n");
    return false;
}

static bool onButtonClick_Button56(ZKButton *pButton) {
    LOGD(" ButtonClick Button56 !!!\n");
    return false;
}

static bool onButtonClick_Button57(ZKButton *pButton) {
    LOGD(" ButtonClick Button57 !!!\n");
    return false;
}

static bool onButtonClick_Button58(ZKButton *pButton) {
    LOGD(" ButtonClick Button58 !!!\n");
    return false;
}

static bool onButtonClick_Button59(ZKButton *pButton) {
    LOGD(" ButtonClick Button59 !!!\n");
    return false;
}

static bool onButtonClick_Button60(ZKButton *pButton) {
    LOGD(" ButtonClick Button60 !!!\n");
    return false;
}

static bool onButtonClick_Button61(ZKButton *pButton) {
    LOGD(" ButtonClick Button61 !!!\n");
    return false;
}

static bool onButtonClick_Button62(ZKButton *pButton) {
    LOGD(" ButtonClick Button62 !!!\n");
    return false;
}

static bool onButtonClick_Button63(ZKButton *pButton) {
    LOGD(" ButtonClick Button63 !!!\n");
    return false;
}

static bool onButtonClick_Button64(ZKButton *pButton) {
    LOGD(" ButtonClick Button64 !!!\n");
    return false;
}

static bool onButtonClick_Button65(ZKButton *pButton) {
    LOGD(" ButtonClick Button65 !!!\n");
    return false;
}

static bool onButtonClick_Button66(ZKButton *pButton) {
    LOGD(" ButtonClick Button66 !!!\n");
    return false;
}

static bool onButtonClick_Button67(ZKButton *pButton) {
    LOGD(" ButtonClick Button67 !!!\n");
    return false;
}

static bool onButtonClick_Button68(ZKButton *pButton) {
    LOGD(" ButtonClick Button68 !!!\n");
    return false;
}

static bool onButtonClick_Button69(ZKButton *pButton) {
    LOGD(" ButtonClick Button69 !!!\n");
    return false;
}

static bool onButtonClick_Button70(ZKButton *pButton) {
    LOGD(" ButtonClick Button70 !!!\n");
    return false;
}

static bool onButtonClick_Button71(ZKButton *pButton) {
    LOGD(" ButtonClick Button71 !!!\n");
    return false;
}

static bool onButtonClick_Button72(ZKButton *pButton) {
    LOGD(" ButtonClick Button72 !!!\n");
    return false;
}

static bool onButtonClick_Button73(ZKButton *pButton) {
    LOGD(" ButtonClick Button73 !!!\n");
    return false;
}

static bool onButtonClick_Button74(ZKButton *pButton) {
    LOGD(" ButtonClick Button74 !!!\n");
    return false;
}

static bool onButtonClick_Button75(ZKButton *pButton) {
    LOGD(" ButtonClick Button75 !!!\n");
    return false;
}

static bool onButtonClick_Button76(ZKButton *pButton) {
    LOGD(" ButtonClick Button76 !!!\n");
    return false;
}

static bool onButtonClick_Button77(ZKButton *pButton) {
    LOGD(" ButtonClick Button77 !!!\n");
    return false;
}

static bool onButtonClick_Button78(ZKButton *pButton) {
    LOGD(" ButtonClick Button78 !!!\n");
    return false;
}

static bool onButtonClick_Button79(ZKButton *pButton) {
    LOGD(" ButtonClick Button79 !!!\n");
    return false;
}

static bool onButtonClick_Button80(ZKButton *pButton) {
    LOGD(" ButtonClick Button80 !!!\n");
    return false;
}

static bool onButtonClick_Button81(ZKButton *pButton) {
    LOGD(" ButtonClick Button81 !!!\n");
    return false;
}

static bool onButtonClick_Button82(ZKButton *pButton) {
    LOGD(" ButtonClick Button82 !!!\n");
    return false;
}

static bool onButtonClick_Button83(ZKButton *pButton) {
    LOGD(" ButtonClick Button83 !!!\n");
    return false;
}

static bool onButtonClick_Button84(ZKButton *pButton) {
    LOGD(" ButtonClick Button84 !!!\n");
    return false;
}

static bool onButtonClick_Button85(ZKButton *pButton) {
    LOGD(" ButtonClick Button85 !!!\n");
    return false;
}

static bool onButtonClick_Button86(ZKButton *pButton) {
    LOGD(" ButtonClick Button86 !!!\n");
    return false;
}

static bool onButtonClick_Button87(ZKButton *pButton) {
    LOGD(" ButtonClick Button87 !!!\n");
    return false;
}

static bool onButtonClick_Button88(ZKButton *pButton) {
    LOGD(" ButtonClick Button88 !!!\n");
    return false;
}

static bool onButtonClick_Button89(ZKButton *pButton) {
    LOGD(" ButtonClick Button89 !!!\n");
    return false;
}

static bool onButtonClick_Button90(ZKButton *pButton) {
    LOGD(" ButtonClick Button90 !!!\n");
    return false;
}
